#ifndef _DKGL_TEXTURE_H_
#define _DKGL_TEXTURE_H_

#include "dkglPreRequest.h"
#include <dkglString.h>
#include <boost/shared_ptr.hpp>

namespace DKGL
{

class Texture
{
public:
	Texture();
	~Texture();

	//bool load(const std::string& path);

    bool load(const String& path);

    void bind();

	void freeBuffer();
	
	inline unsigned int width() const
	{return m_nWidth;};

	inline unsigned int height() const
	{return m_nHeight;};

	const unsigned char* getBufferPtr() const 
	{return m_pBuffer;};

private:
	std::string mPath;
	std::string mName;
	unsigned int mTexID;
	unsigned int m_nWidth;
	unsigned int m_nHeight;
	unsigned char *m_pBuffer;
	unsigned short m_nChannel;
};

	typedef boost::shared_ptr<Texture> TexturePtr;



}

#endif